1. Field of the Invention
The invention relates in general to computer-based systems that present information to users and allow users to change or propose changes to information, and more particularly, to determining user access to information and to determining workflow of information among multiple users.
2. Description of the Related Art
As computer-based applications have been deployed more generally than in back-office departments, access to applications is provided to from thousands to hundreds of thousands of users with applications that have hundreds or thousands of presentations, the management of who has access to what information has become a big problem. A common way to manage access is to use an Access Control List. An ACL typically consists of a table having many entries with User Id, PageName, and Privileges, for example. The User Id identifies the person who is using the application—the user. The PageName identifies a particular presentation of information—a Page of information. A Page ordinarily includes data from computer databases, decorations, and navigation information for access to related presentations. Privileges are codes or indicators that specify whether the user can update data or see some parts of the data. In some ACL implementations, the entries contain rules that provide additional restrictions. Such a rule might say that a user having access to enter payments is limited to payments less than some dollar amount or that a user having access to employee's compensation information is limited to the ten employee numbers of the people that report to that user, for instance. In an environment in which one hundred thousand users have possible access to fifty PageNames each, the number of entries in the ACL could be on the order of about five million. Maintenance of such lists is time consuming and prone to error.
One solution to the multiplicity of ACL entries is to group many PageNames into a role or group. However, many roles cannot be statically assigned. The Manager role is relative to the Employee being considered. A user might be the Manager of one Employee but not of another. Some ACL methods extend the list entries with key values so that the entry only applies to some entities in the database. This approach can make the maintenance problem much more difficult since the ACL entries must be updated for each change in reporting relationships.
A common way that access is provided to Pages is to have menus of hyperlinks that the user can click on to access another Page. This presents menus in the common format of the Internet. Although most modern applications are designed to operate on the Internet using hypertext markup language, the access schemes also operate on other platforms.
The problem of maintaining the ACLs has become serious enough that several systems have been developed to automatically update the ACLs and to examine the ACL to determine that they conform to the rules of the organization for allowing access. While these systems reduce clerical work in a dynamic environment where people are joining, leaving, and transferring from job-to-job or organization-to-organization, the ACL will frequently be out of date. The latency of this method can render some applications unreliable or even unusable. If a project manager had to wait several hours for access to be available to a new member of a project, the use of such a project control system might be impractical.
In the mid 1990s, an application for Manager Self Service was introduced by Seeker Software, Inc. that included a rules-based system for access control that dramatically reduced the need to maintain ACLs. This system executed rules embedded in the applications that examined the relationships described in a database to infer the access rights. The innovation of Seeker's methodology was to use the embedded rules to control the menus and hyperlinks. From a list of possible menu items or links, only those items to which the user has access are displayed. This mechanism was an improvement over the Access Control List approach, but changing the rules for access was cumbersome because the rules are embedded in the application.
Many applications require that more than one user participate in a transaction. One user may enter some information and then other users may need to be notified, be allowed to approve or disapprove the transaction, or to review and forward the transaction to other users. This type of process is known as a workflow. One of the problems in workflows is identifying the proper user to perform a particular action—e.g., approve a proposed transaction, review a proposed transaction, or receive a notice of a completed transaction. In simple workflow systems, specific users or users in specific positions typically are assigned roles in the workflow. In applications where thousands of users are entering transactions, such workflow systems have limited use. In many cases, a user is asked to identify the next user to route the transaction to because the system cannot figure that out. In other cases the roles are limited because maintaining routing lists is so labor intensive.
Seeker Software improved on the maintenance of routing lists by embedding rules in the application that inferred workflow roles from relationship information stored in the database. This approach allowed a broader reach for the application since things like a user's approval manager could be inferred by relationships in the database rather than having to be specified in advance for that user. It also allowed a broader range of roles to be practical. A user might have an Approval Manager, an HR Administrator, an Executive Reviewer, a Project Manager and several other workflow roles, for example. When thousands or hundreds of thousands of users are entering transactions that require approval or review, an inference mechanism is superior to a routing list approach.
While the prior Seeker mechanism improved the maintenance of workflow routing lists, but it has been somewhat fragile and cumbersome because the rules are embedded in code.
Thus, there has been a need for improvement in control of access to presentation pages in computer systems that serve information to large numbers of users. There also has been a need for improvement in workflow routing involving access to pages by multiple users in such computer systems. The present invention meets these needs.